//
//  NSObject+Extend.m
//  03-发送JSON数据-(掌握)
//
//  Created by shenzhenIOS on 16/3/8.
//  Copyright © 2016年 shenzhenIOS. All rights reserved.
//

#import "NSObject+Extend.h"
#import <objc/runtime.h>
@implementation NSObject (Extend)
/**
 *  获得当前类的所有属性-->运行时机制.
 */
+ (NSArray*)propertiesForModel {
    
    // 定义一个用来转所有属性的数组.
    NSMutableArray *names = [NSMutableArray array];
    // 获得类中的所有属性.
    unsigned int count; //计数器.
    objc_property_t *properties = class_copyPropertyList([self class], &count);
    // 遍历获得集合中所有的属性.
    for (int i = 0; i < count; ++i) {
        // 根据下标获得对应的属性.
        objc_property_t property = properties[i];
        // 获得属性的C名字.
        const char *cName = property_getName(property);
        // 将名字转为OC名字.
        NSString *OCName = [NSString stringWithCString:cName encoding:NSUTF8StringEncoding];
        // 添加到数组中
        [names addObject:OCName];
    }
    return names;
}
/**
 *  一个汉字的尺寸
 *
 *  @param fontSize  该处汉字的字体大小
 */
- (CGSize)getSizeWithFontSize:(CGFloat)fontSize {
    return [@"中" getSizeWithFont:[UIFont systemFontOfSize:fontSize]];
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"

#pragma clang diagnostic pop
@end
